package com.swf.seed.spring.resource;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;

/**
 * ClassName: UrlResourceTest1 <br/>
 * Function: TODO ADD FUNCTION. <br/>
 * Reason: TODO ADD REASON(可选). <br/>
 * date: 2014-7-20 下午3:05:36 <br/>
 *
 * @author shenwf10476
 * @version 
 * @since JDK 1.6
 * 使用 UrlResource 来访问本地磁盘资源，虽然 UrlResource 是为访问网络资源而设计的，但通过使用 file 前缀也可访问本地磁盘资源。如果需要访问网络资源，可以使用如下两个常用前缀：
http:－该前缀用于访问基于 HTTP 协议的网络资源。
ftp:－该前缀用于访问基于 FTP 协议的网络资源。
由于 UrlResource 是对 java.net.URL 的封装，所以 UrlResource 支持的前缀与 URL 类所支持的前缀完全相同。
将应用所需的 book.xml 访问放在应用的根路径，运行该程序，即可看到使用 UrlResource 访问本地磁盘资源的效果。
 */
public class UrlResourceTest {
	public static void main(String[] args) throws DocumentException, IOException {
		 // 创建一个 Resource 对象，指定从文件系统里读取资源
		 UrlResource ur = new UrlResource("file:urlbook.xml");
		 // 获取该资源的简单信息
		 System.out.println(ur.getFilename()); 
		 System.out.println(ur.getDescription()); 
		 System.out.println(ur.getFile().getAbsolutePath()); 
		 // 创建 Dom4j 的解析器
		SAXReader reader = new SAXReader(); 
		 Document doc = reader.read(ur.getFile()); 
		 // 获取根元素
		 Element el = doc.getRootElement(); 
		 System.out.println(el.asXML());
		 List<Element> l = el.elements();
		 for (Element e:l){
			 System.out.println(e.asXML());
		 }
	}
}
